package com.src.myapplication.utils;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.InputMethodManager;

import com.bumptech.glide.Glide;
import com.src.myapplication.MainActivity;

import java.util.concurrent.ExecutionException;


public class UIManager {

    /**
     * 打开主页面
     *
     * @param context
     */
    public static void startMain(Context context, int id) {
        Intent intent = new Intent();
        intent.putExtra("id", id);
        intent.setClass(context, MainActivity.class);
        context.startActivity(intent);
    }

    public static void startActivity(Context context, Class<? extends Activity> clazze) {
        context.startActivity(new Intent(context, clazze));
    }

    /**
     * 页面之间的跳转
     *
     * @param clazz
     */
    public static void startActivity(Context context, Class<? extends Activity> clazz,String uid,String name, String pathMsg, String path) {
        Intent intent = new Intent(context, clazz);
        intent.putExtra(pathMsg, path);
        context.startActivity(intent);
    }
    public static void startActivity(Context context, Class<? extends Activity> clazz, String pathMsg, String path,String url) {
        Intent intent = new Intent(context, clazz);
        intent.putExtra(pathMsg, path);
        intent.putExtra("url",url);
        context.startActivity(intent);
    }
    public static void startActivity(Context context, Class<? extends Activity> clazz,String[] data) {
        Intent intent = new Intent(context, clazz);
        intent.putExtra("key",data);
        context.startActivity(intent);
    }




    /**
     * 验证手机格式
     * 移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
     * 联通：130、131、132、152、155、156、185、186
     * 电信：133、153、180、189、（1349卫通）
     * 加上 170号段。
     * 总结起来就是第一位必定为1，第二位必定为3或5、7或8，其他位置的可以为0-9
     * //"[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，
     * // "\\d{9}"代表后面是可以是0～9的数字，有9位。
     */
    public static boolean isMobileNO(String mobiles) {
        String telRegex = "[1][3578]\\d{9}";
        if (TextUtils.isEmpty(mobiles)) {
            return false;
        } else {
            return mobiles.matches(telRegex);
        }
    }

    /**
     * 将图片切成圆形
     *
     * @param bitmap
     * @return
     */
    public static Bitmap drawCircleView02(int with, int height, Bitmap bitmap) {

        //前面同上，绘制图像分别需要bitmap，canvas，paint对象
        bitmap = Bitmap.createScaledBitmap(bitmap, with, height, true);
        Bitmap bm = Bitmap.createBitmap(height, height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bm);
        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        //这里需要先画出一个圆
        canvas.drawCircle(height / 2, height / 2, height / 2, paint);
        //圆画好之后将画笔重置一下
        paint.reset();
        //设置图像合成模式，该模式为只在源图像和目标图像相交的地方绘制源图像
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, 0, 0, paint);
        return bm;
    }


    /**
     * 得到bitmap
     *
     * @param context
     * @param path
     * @return
     * @throws ExecutionException
     * @throws InterruptedException
     */
    public static Bitmap glideloadBitmap(Context context, String path) throws ExecutionException, InterruptedException {
        Bitmap bitmap = Glide.with(context)
                .load(path)
                .asBitmap() //必须
                .centerCrop()
                .into(500, 500)
                .get();
        return bitmap;
    }


    /**
     * 显示输入软件盘，焦点在传进去的view上
     *
     * @param view
     */
    public static void showSoftInput(Context context, View view) {
        if (view == null) {
            return;
        }
        view.requestFocus();
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.showSoftInput(view, 0);
        }
    }
}
